In networked computing platforms, it is a frequent requirement to permit one application or process to communicate with, or execute on, a remote environment. An application or process, for example, may need to communicate with a remote data source, such as a remote database server, to retrieve data located at that source or perform other functions. Known mechanisms for permitting a local process to communicate with or execute on a remote space include remote procedure calls (RPCs), which in the case of object-oriented software can be referred to as remote invocations.
When a local process desires to communicate with a server to access data, that remote server may in turn need to access a remote database or other resource to satisfy the request. However, according to known remote invocation technology, issues in creating a high-bandwidth channel to the requester can arise. A significant drawback resides in the fact that some data is not stored in a native serialized format, so that the requester or the remote server may have to generate a large series of small requests to extract the needed information from the remote database, component by component.
Furthermore, existing invocation platforms do not permit or contemplate the encapsulation of a series of requests to build the delivery of a set of serialized data from a remote source. Developers wishing to cause local processes to access remote data sources may therefore have to accept a performance penalty, by writing or triggering a series of requests for small amounts of data to simulate a serialized data stream. For some delivery purposes, such as delivery of video or other media content, this may make effective delivery of the content difficult or impossible. It may be desirable to provide methods and systems for invoking serialized data streams that permit transparent delivery of data to requester processes, without a need to separately handle each constituent piece of data.